Nested zoom in windows on a touch sensitive device

ABSTRACT

Certain aspects of the present disclosure relate to a technique for generating nested zoom in windows on a touch sensitive device. A first portion of the user content is zooming into by touching the display screen in a proximity of the first portion using the touch input device while retaining an original zoom size of a remaining portion of the user content. A second portion of a zoomed in first portion of the user content is zooming into by touching the display screen in a proximity of the second portion using the touch input device while retaining an original zoom size of the zoomed in first portion.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of prior filed U.S. ProvisionalApplication Ser. No. 61/317,827, filed on Mar. 26, 2010, incorporatedherein by reference. This application relates to commonly assigned U.S.Provisional Application Ser. No. 61/317,812, filed on Mar. 26, 2010, andU.S. Provisional Application Ser. No. 61/317,800, filed on Mar. 26,2010, and U.S. Provisional Application Ser. No. 61/317,741, filed onMar. 26, 2010 and U.S. application Ser. No. 12/753,163 filed on Apr. 2,2010, issued U.S. Pat. No. 8,786,875, issued Jul. 22, 2014 and U.S. Ser.No. 12/753,167 filed on Apr. 2, 2010 and U.S. Ser. No. 12/753,171 filedon Apr. 2, 2010 and U.S. Ser. No. 12/753,180 filed on Apr. 2, 2010,issued U.S. Pat. No. 8,559,036, issued Oct. 15, 2013 and U.S.Provisional Application Ser. No. 61/317,744 filed on Mar. 26, 2010 andU.S. application Ser. No. 12/770,944 filed on Apr. 30, 2010 and U.S.application Ser. No. 12/770,965 filed on Apr. 30, 2010 and U.S. Ser. No.12/770,974 filed on Apr. 30, 2010 and U.S. Provisional Application Ser.No. 61/317,793, filed on Mar. 26, 2010, each of which is incorporatedherein by reference.

FIELD OF THE INVENTION

The present disclosure relates generally to touch sensitive devices and,more specifically, to a method, apparatus and computer-readable mediumfor generating nested zoom in windows on a touch sensitive device.

BACKGROUND OF THE INVENTION

User interface (UI) is often one of the most important parts of acomputer program because it determines how easily a user can communicatewith the program. A powerful program with a poorly designed UI haslittle value. Text-based and graphical user interfaces (GUIs) that usewindows, icons, and pop-up menus have become standard on personalcomputers. Text-based UIs as well as GUIs typically use an input device,such as a keyboard, mouse or stylus, to provide user input and controlthe movement of a cursor or pointer on a display screen.

Touch-sensitive surfaces are rapidly becoming more common in computingdevices. A natural input device for computing devices withtouch-sensitive surfaces is a user's finger. They are very convenient asthey allow a user to make natural gestures familiar to the user in othercontexts, such as by entering handwriting using a special stylus such asan elongated pen-like object having a pointed tip. Many of these devicesalso allow input to be provided by user's fingertip. The termtouch-sensitive surface or device will be used herein to refer to suchsurfaces or devices that are configured to detect the touch of any typeof “stylus” such as a specially-design stylus device or a user's finger.One disadvantage of using a finger or other broad-tipped stylus with atouch-sensitive device is that it is more difficult to accurately targetwhere the finger will and will not touch. For instance, where thetouch-sensitive device is combined with a display (thus, atouch-sensitive display), it is difficult to use a finger to targetsmall displayed objects so that they may be selected and/or manipulated.Note that for many elderly and for some people with neurologicaldisorder, it is very difficult to stop their hands from shaking.Clearly, constantly shaking hand will make it very hard for a user touse his finger to navigate through information displayed densely on atouch screen.

In addition, various pointing devices such as mice and man-made pen-typestylus digitizers provide for a hover function, meaning that the usermay position the cursor over an area without generating a click.However, few if any touch-sensitive displays have this capability whenused by a human finger. The need exists to provide a way for users tohover the cursor using only their finger on a touch-sensitive display,and to provide a way for users to be able to use a touch-sensitivedevice with their fingers or other inherently imprecise styluses, whilemaintaining a reasonable level of accuracy.

Solutions including a patent assigned to Microsoft Corporation areattempting to address this problem. One of such patents is a recentlyissued U.S. Pat. No. 7,489,306 “Touch screen accuracy” byKolmykov-Zotov, et al. In this invention, a user interface is providedallowing a user to simulate mouse hovering with the user's finger on atouch-sensitive display. When a finger or other stylus touches thetouch-sensitive display adjacent to a display cursor, a control appearsthat enables the user to drag the cursor about the display by draggingthe control. Manipulation of the control instead of the cursor allowsthe user to see the cursor while it moves, making it easier toaccurately target small objects that were previously difficult to targetdirectly. See FIG. 1 copied from the above mentioned patent application.

FIG. 1 illustrates an invention described in U.S. Pat. No. 7,489,306“Touch screen accuracy” by Kolmykov-Zotov, et al. In this embodiment,the cursor handle 192 is a simple circle surrounding the cursor 190. Asshown, the contact area 194 is on the cursor handle 192 such that thecursor 190 is ready to be moved. As the user moves his or her fingerdownward and to the right in FIG. 1, for example, the cursor handle 192and the cursor 190 simultaneously move with the finger and in the samedirection as the finger. At some point during the movement, the fingerhas now moved to a location indicated by 194 a, the cursor 190 has movedto a position indicated by 190 a, and the cursor handle 192 has moved toa position indicated by 192 a. During the movement, the cursor 190remains adjacent to the finger (i.e., adjacent to the contact area 194)and the cursor handle 192.

Unfortunately, solution of U.S. Pat. No. 7,489,306 described above isnot well suited for small touch screen devices such as cell phones andPDAs with relatively large displayed information. Information that canbe easily navigated on large touch screens, need to be reduced in sizeif the same level of navigation convenience is expected on smaller touchscreens. FIG. 2A shows a scaled down version of a city map on a smallscreen normally seen well on larger screens.

Same information can be easily viewed on larger screen as illustrated inFIG. 2B. Prior art solutions to such problems are re-formatting ofinformation to fit smaller size touch screens, or to zoom into aspecific area as needed. The first type of solution is described, forexample, in U.S. Pat. No. 6,742,043 “Reformatting with modular proxyserver” by Moussa, et al. or in U.S. Pat. No. 6,226,642 “Contentmodification of internet web pages for a television class display” byBeranek, et al. Authors of both inventions realize that informationnormally formatted for certain type of screens, needs to be displayed onscreens of different sizes and resolution capabilities. Therefore theypropose solutions addressing such needs by properly reformattinginformation content. Any one skilled in the art would recognizeimmediately that reformatting data is costly as it requires additionalhardware and software. Moreover, there is added cost of maintenance asreformatted data could quickly become outdated. E.g., news informationmay need to be constantly updated, thus reformatting data would be shortlived. Moreover, for small devices such as cell phones, PDAs, etc,reformatting most likely would mean reducing the content. Therefore,richness of the content will be lost, and navigating through limitedinformation displayed on the screen may not be very valuable service forthe users.

Another obvious and commonly used solution is to zoom into specific areaof displayed information. Examples are seen in daily life of anyoneusing computers zooming into the text of online documentation, orzooming into specific area of a map, etc. For example, you candouble-tap or use the pinch gesture to expand webpage columns in Safari.Zoom is a special accessibility feature that lets you magnify the entirescreen of any application. For example iPhone by APPLE Corporation isused to see what's on the display. Turn Zoom on or off: In Settings,choose General>Accessibility>Zoom and tap the Zoom On/Off switch. Zoomin or out: Double-tap the screen with three fingers. By default, thescreen is magnified by 200 percent. If you manually change themagnification (by using the tap-and-drag gesture, described below),iPhone automatically returns to that magnification when you zoom in bydouble-tapping with three fingers.

Disadvantage of this method is that while user zooms into a specificarea, he is not able to see the “big picture”. Consider for example amap application. Often user would like to zoom into a specific area on acity map without expanding the whole map, so that he can keep track ofthe landmarks and their relative distance and location to the zoomed inarea. In general, when detailed information is being looked up, it isdesirable to keep the bigger picture in perspective.

U.S. Pat. No. 6,992,661 “Electronic device, digital still camera anddisplay control method” by Ikehata et al, describes an electronic devicethat comprises a touch screen configured to output coordinateinformation corresponding to the position where it is touched, a displayunit configured to display an item indicating an operating area in apredetermined position on the touch screen, and a control unitconfigured to clear the item displayed on the display unit when an areaof the touch screen other than the area indicated by the item istouched. This invention describes a method of selecting and displayingan enlarged image of a part of the image corresponding to the inputimage data, does this for images in the context of small sized cameras.Ikehata's invention does not describe consecutive zoom in zoom outoperations for localized area (as opposed for the whole informationdisplayed by the application). Method for instructing local zoom in/zoomout operations are different. Ikehata's invention does not describeoperations with two or more localized zoom-in areas and objects selectedin these areas.

There is therefore a need to provide a way for users to be able to use atouch-sensitive device with their fingers or other inherently imprecisestyluses, while maintaining a reasonable level of accuracy.

SUMMARY OF THE INVENTION

Certain aspects of the present disclosure provide a method for viewinguser content on a touch sensitive display screen of a touch sensitivedevice by using a touch input device. The method generally includeszooming into a first portion of the user content by touching the displayscreen in a proximity of the first portion using the touch input devicewhile retaining an original zoom size of a remaining portion of the usercontent and zooming into a second portion of a zoomed in first portionof the user content by touching the display screen in a proximity of thesecond portion using the touch input device while retaining an originalzoom size of the zoomed in first portion.

Certain aspects of the present disclosure provide an apparatus forviewing user content on a touch sensitive display screen of a touchsensitive device by using a touch input device. The apparatus generallyincludes at least one processor configured to zoom into a first portionof the user content by touching the display screen in a proximity of thefirst portion using the touch input device while retaining an originalzoom size of a remaining portion of the user content and zoom into asecond portion of a zoomed in first portion of the user content bytouching the display screen in a proximity of the second portion usingthe touch input device while retaining an original zoom size of thezoomed in first portion; and a memory coupled to the at least oneprocessor.

Certain aspects of the present disclosure provide a computer-programproduct for viewing user content on a touch sensitive display screen ofa touch sensitive device by using a touch input device, thecomputer-program product generally including a computer-readable mediumcomprising instructions for zooming into a first portion of the usercontent by touching the display screen in a proximity of the firstportion using the touch input device while retaining an original zoomsize of a remaining portion of the user content and zooming into asecond portion of a zoomed in first portion of the user content bytouching the display screen in a proximity of the second portion usingthe touch input device while retaining an original zoom size of thezoomed in first portion.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an invention described in U.S. Pat. No. 7,489,306“Touch screen accuracy”.

FIG. 2A shows a scaled down version of a city map on a small screennormally seen well on larger screens.

FIG. 2B shows the same map as in FIG. 2A seen on a larger screen.

FIG. 2C shows a system with a touch screen capable of detecting touchevents in accordance with an embodiment of the present disclosure.

FIG. 3 illustrates a Main Map window in accordance with an embodiment ofthe present disclosure.

FIG. 3A illustrates a user selecting Local Zoom mode in accordance withan embodiment of the present disclosure.

FIG. 3B illustrates the user zooming into a local area in accordancewith an embodiment of the present disclosure.

FIG. 3C illustrates the user enabling local zoom inside a small mapwindow in accordance with an embodiment of the present disclosure.

FIG. 3D illustrates user zooming into a local area map in accordancewith an embodiment of the present disclosure.

FIG. 3E illustrates the user enabling the main map window as the activewindow while keeping a local area map window open in accordance with anembodiment of the present disclosure.

FIG. 3F illustrates the user enabling multiple local zoom maps inaccordance with an embodiment of the present disclosure.

FIG. 4 illustrates Local Zoom Mode of Operation for Text ViewingApplication in accordance with an embodiment of the present disclosure.

FIG. 5 illustrates Selected Word Search Option, in accordance with anembodiment of the present disclosure.

FIG. 6 illustrates Selected Phrase Search Option in accordance with anembodiment of the present disclosure.

FIG. 7 is an example of a flow diagram illustrating a process ofenabling Local Zoom (Small Map) around the touched point of a base mapin accordance with an embodiment of the present disclosure.

FIG. 8 is an example of a flow diagram illustrating a process ofenabling local zoom (small) maps inside a base map in accordance with anembodiment of the present disclosure.

FIG. 9 is an example of a flow diagram illustrating a process ofretrieving information from two separate locations in accordance with anembodiment of the present disclosure.

FIG. 10 is an example of a flow diagram illustrating a process ofgenerating nested zoom in windows in accordance with an embodiment ofthe present disclosure.

The foregoing summary, as well as the following detailed description ofcertain embodiments of the present invention, will be better understoodwhen read in conjunction with the appended drawings. The figuresillustrate diagrams of the functional blocks of various embodiments. Thefunctional blocks are not necessarily indicative of the division betweenhardware circuitry. Thus, for example, one or more of the functionalblocks (e.g., processors or memories) may be implemented in a singlepiece of hardware (e.g., a general purpose signal processor or a blockor random access memory, hard disk, or the like). Similarly, theprograms may be stand alone programs, may be incorporated as subroutinesin an operating system, may be functions in an installed imagingsoftware package, and the like. It should be understood that the variousembodiments are not limited to the arrangements and instrumentalityshown in the drawings.

DETAILED DESCRIPTION

Aspects of the present invention may be used in connection with a systemcomprising of a touch screen and a computing device. FIG. 2C illustratesa system 200 with a touch screen 220 capable of detecting touch eventsin accordance with an embodiment of the present disclosure. Specificexample in the context of this discussion would be a touch event in aspecific location and interpreted by the system as command helping userto improve touch accuracy.

Invented touch sensor system 200 generally comprises one or moretouch-screens devices. A touch sensor system with a single touch-screendevice 210 is illustrated in FIG. 2C. The touch-screen device 210communicatively coupled to a controller 290 through link 240, comprisesand a transparent touch sensor layer 230 covered by a touch-screen 220made out of transparent material such as glass. The controller 290further comprises at least one buffer 291 and at least one specializedmicroprocessor 292. In present invention the buffer 291 is fortemporarily storing auxiliary information such as local zoom buttontouch counter, X and Y coordinates of the point where touch event wasdetected, etc. The purpose of the microprocessor 292 is to compute thelocally zoomed area, and to re-compute locally zoomed area as user'sfinger moves on the touch screen surface. It should be noted that thebuffer 291 and the microprocessor 292 can be combined with the existingbuffer(s) and microprocessor(s) of controllers used in prior artsystems.

A touch-screen system comprising the touch-screen device 210 andcontroller 290 may be used in conjunction with a controller userinterface unit 260 coupled with the controller 290 via direct link,internet web 250, wireless, or another connection. It should be notedthat often a touch sensor system has only one touch-screen device. Itshould be also noted that controller 290 and controller interface unitsmay be built in to the touch-screen device 210. Separate units 210, 290,and 260 are shown for illustrating a more general example.

The microprocessor 292 may output the combined information of detectedtouch events to another device such as a central or host computer 260via lead 245. It should be understood that the coordinate informationpassed through the lead 245 is representative only. In addition,information may be output in many forms and formats by the computer 260,such as text or graphics on the display device 250, a different displaydevice or monitor, a light, a bell, an initiation or termination of anaction, and the like. Therefore, the information passed through the lead245 may change based on the purpose of the touch sensor system 200.Optionally, the controller 290 may be located within a monitor or thedisplay device 210, in a separate unit as illustrated, or within thecomputer 260.

One embodiment of the invention is illustrated using city mapapplication. It should be noted that invention is not limited to citymap application. As it will be seen from the description, many otherapplications where user wishes increased accuracy of his touch commandswill benefit as well.

FIG. 3 illustrates a Main Map window in accordance with an embodiment ofthe present disclosure. In an example illustrated in FIG. 3, the user isviewing a map of lower Manhattan area. We refer to this map as the mainmap (MM) 310. In FIG. 3, there are three buttons seen in the upper-leftcorner of the MM. These buttons are “Zoom In” 305, “Local Zoom” 304, and“Zoom Out” 303. In this embodiment we will discuss several map windows.In addition to the MM, there will be one or more smaller maps (SM)enlarging localized area so that the user may easily view and selectdesired information in specific location without loosing view of the“big picture” provided by the MM. Even though there may be multiple mapwindows on the screen (as will be discussed below), there is only oneset of three buttons 303, 304, and 305.

The user is able to manipulate map windows: create, zoom in/out, move,stretch, etc. Window with which user is performing such operations isreferred to as Active Window (AW). Only one window is designated as anactive window at a time. (FIG. 3 shows only one map window MM, thus itis also AW by default). When there are more than one map windows on thescreen (MM and SMs), any non-active window can be made active by user'stouch inside that window. Conversely, if a window is active, any user'stouch of another window will make the first window non-active. Theactive window is highlighted by two small squares. One square 320 is inthe upper-right corner. It is marked as “x”. Touching this square willresult in closing the active window. The other small square 330 islocated in the lower-left corner of the AW. It is marked as “0” (or “1”,“2”, etc. as will be explained later). The user can change the size ofthe AW by holding and moving this button. The user can zoom in and zoomout map shown in the AW by pressing “Zoom In” and “Zoom Out” buttons 305and 303, respectively. During Zoom In and Zoom Out operations, thecenter of the map is fixed. Change center location operations aredifferent for the MM and SM. The user can change the location of thecenter of the MM by touching and holding the surface of the map andmoving it into the desired direction. For the SM, user can change SMcenter location by touching its border and moving it to the desiredlocation while holding the touching finger. An SM and said window borderare illustrated, for example, in FIG. 3B below.

Assume now that the user wants to see a detailed map of smaller streetsnear the intersection of Broadway and Canal streets and see the rest ofthe map visible so that he can easily relate the city landmarksFinancial District and Chinatown, as two possible examples. Inaccordance with one embodiment of this invention the user would touchthe “Local Zoom” button 304, to inform the application that he wishes tozoom the AW (in this case MM) locally. This operation is illustrated inFIG. 3A. FIG. 3A illustrates a user selecting Local Zoom mode inaccordance with an embodiment of the present disclosure. The usertouches button 304 with his finger 302 a and the button 304 changescolor. Color change indicates that the next expected operation istouching a location inside the AW where local zoom is desired.

FIG. 3B illustrates the user zooming into a local area in accordancewith an embodiment of the present disclosure. Referring to FIG. 3B, wesee that by touching the MM 310 near the point 306 b where local zoomingis desired the user creates a small map (SM) window 308 b. FIG. 3Billustrates local zooming of area around the intersection of Broadwayand Canal streets. This operation also makes the SM window 308 b theActive Window (AW). Observe that Local Zoom button 304 changes its colorto the default white color. That indicates that the AW is NOT in localzoom mode. According to another embodiment, the same result can beobtained by instructing the system via voice command. For example, theuser could say “Create a local map inside the main map near theintersection of Broadway and Canal streets”.

According to one embodiment of the invention, the user may enable localzoom for the small active window 308 b by touching Local Zoom button 304and then touching a point inside the map 308 b where the local zoomshould be enabled. This scenario is illustrated in FIG. 3C. FIG. 3Cillustrates the user enabling local zoom inside a small map window inaccordance with an embodiment of the present disclosure. Notice that inFIG. 3C, “Local Zoom” button is not colored, that is because the figuredepicts a moment after the user enabled local zoom mode of map 308 b (atthat moment the button 304 became colored) and then touched near point306 c inside map 308 b thus instructing the application to show a newsmall map 311 inside map 308 b. Window 311 is now the active window.

As can be seen from the description of present embodiment, map windowsof the application have nested structure. For example, SM 311 is insideSM 308 b, which is inside the main map window 310. Thus the map windowshave tree structure, and each window map can be assigned a level in thattree. For example, the main map 310 has level 0, the SM map 308 b haslevel 1, SM map 311 has level 2, etc. According to one embodiment of theinvention the level of the active window in the tree can be specified bydisplaying the level number in the colored square located in thelower-left corner of the AW. Alternatively the active window level canbe highlighted by the intensity of color of squares in the upper-rightand lower-left corners of the active map window. For example for thelevels 0, 1, 2, and 3, the selected color scheme could be white, yellow,orange, red, respectively. The maximum number of window levels (e.g.,three) and coloring map mentioned in this embodiment are provided forillustration purposes only. Any other combination of window levels andcoloring options is possible.

Let's now refer back to FIG. 3B, where the only small window 308 b isthe active window of the application. According to another embodiment ofthe invention, the user can zoom inside that map 308 b simply bypressing “Zoom In” button 305, and zoom out by touching “Zoom Out”button 303. FIG. 3D illustrates this operation. FIG. 3D illustrates userzooming into a local area map in accordance with an embodiment of thepresent disclosure. Referring to FIG. 3D, notice that user finger 302 ctouches “Zoom In” button 305 thus instructing the application to zoominside the local active map 308 b.

The user can also move the SM 308 b by touching the border of SM 308 bby his finger 302 b and moving his finger by holding it down. As userfinger moves, the content inside the SM 308 b will change to reflectzoomed in area of new location.

Referring again to FIG. 3B, we recall that the SM 308 b is the AW. Nowsuppose the user wants to go back to the MM 310 while leaving SM 308 bopen. This can be easily done as was mentioned before and as illustratedin FIG. 3E by user finger 302 e touching any point inside the MM 310.Such touch command informs the application that now MM 310 window is theActive Window. If the user wants to close the SM 308 b, he would have tomake it active by touching any point inside the SM 308 b, and then touchthe colored “x” square in the upper-left corner of the active window SM308 b. (The last operation is not illustrated in any of the figurespresented in this disclosure as by now that operation should be obviousto the reader who followed explanation of all previously describedoperations.)

The user may want to open more than one local area maps inside the MM310. This can be done in at least one of the following ways. In oneembodiment, the user will repeat the sequence of the following touchcommand: touch “Local Zoom” button 304; then touch a point inside MM 310where local zoom in window is desired. If three SM widows are required,the user will repeat the above mentioned sequence of touch commandsthree times. In another embodiment the system will keep a counter Ctracking the number of consecutive touches of “Local Zoom” button 304.The user will touch “Local Zoom” button 304 N times if N small mapwindows are desired by the user. With the first touch “Local Zoom”button will change its color, with each consecutive touch of “LocalZoom” button, the internal touch counter C will be incremented, and thevalue (C−1) will be displayed inside Local Zoom button 304 whenever C>1.Then the user will proceed by touching MM in desired locations. Eachtouch will generate a new SM window (which become the AW by default) andwill decrement the counter C. As long as C>1, the value of (C−1) will bevisible inside the “Local Zoom” button 304. FIG. 3F illustrates thisembodiment. Assume the user wanted to have four SM windows inside MM310. Thus the user touched “Local Zoom” button 304 four times. Now C=4,and “Local Zoom” button 304 message reads “Local Zoom 3”, indicatingthat four SM will be generated. Referring to FIG. 3F, observe that afteruser finger touches MM twice SM 308 f, and SM 340 are created. Now C=2,and “Local Zoom” button 304 message reads “Local Zoom 1”, indicatingthat two more SM windows are expected. In another embodiment, the userwill instruct the application of each additional local area map creationby a voice command. Example of a flow chart illustrating this operationis shown in FIG. 7 below.

One application (and benefit) of the present invention is findingshortest path between two objects selected by the user on the map. Thisapplication will be illustrated in the case when user find two objectsin the two different local maps (SMs) as shown in FIG. 3F. FIG. 3Fillustrates the user enabling multiple local zoom maps in accordancewith an embodiment of the present disclosure. The user willsimultaneously touch two selected objects in local zoomed maps 308 f and340 using two fingers. For example, the user can zoom in one area of themap where he stays and select his hotel, in another zoomed in local mapthe user can select a different building that he wants to visit (or arestaurant he want to go to). By quickly moving his fingers located ontwo selected objects in two local maps, the user will instruct thesystem to show on the map the shortest drive way from one place toanother. Alternatively, user can instruct the system to show shortedpath by voice command “SHOW ME THE SHORTEST PATH”, or the quickest pathsaying “SHOW ME THE QUICKEST ROUTE”, or “SHOW ME THE QUICKEST ROUTE WITHMINIMUM TRAFFIC CONGESTION”. Observe that the system will recognizeautomatically which objects user is trying to connect because they areselected by his fingers. The same procedure can be repeated to connectmore than two objects in the one path.

In another embodiment, once user can accurately identify an object ofinterest in the map, he can instruct the system to send alert with thecoordinates of the selected object and additional instruction, e.g.,that he plans to be at the specified location at certain time, etc. Inanother embodiment, the user will place his fingers onto easilyidentifiable objects in two or more localized maps (e.g., Thai foodrestaurants) and instruct the system to send a message to his friend(s)with a suggestion to meet at any of the specified locations and respondwithin fifteen minutes with their choice. Once recipients receive themessage, identical application on their computing devices will show mapof the area with local zoom in maps around the selected objects, so thatthey can also take advantage of zooming in at one or more locationswhile seeing the map of the whole area. It can be seen therefore, thatthe present invention greatly improves location based services.

In another embodiment, the user can select for example two local areamaps, touch each local area map with his figure and instruct the systemby voice “SHOW ME ITALIAN RESTAURANTS”. The system will mark andhighlight location of Italian Restaurants near each of the specifiedlocations within the boundaries of the corresponding local maps. Theuser can further instruct the system to get details of all or some ofthe restaurants he selects by touching them by saying for example “WRITEDOWN WORKING HOURS OF EACH SELECTED RESTAURANTS” or “OPEN HOME WEB PAGEFOR EACH OF THE SELECTED RESTAURANTS IN A SEPARATE BROWSER WINDOW”.Example of a flow chart illustrating this operation is shown in FIG. 9below.

In another embodiment of the invention, user can locally enlarge textthat he is viewing. Assume user is reviewing text, and decides to doquick update to the text, or wants to select a word or phrase forlooking it up in the dictionary. Instead of zooming in the entire text,it is useful to provide user with the capability to zoom into a localtext (a few lines or a sentence) so that he can more accurately executedesired touch commands.

According to this embodiment the same procedures as in previousembodiment are used for selecting local zoom mode of operation,selecting local area for zooming and for moving locally zoomed area.FIG. 4 illustrates Local Zoom Mode of Operation for Text ViewingApplication in accordance with an embodiment of the present disclosure.For example if user reading text 420 shown in FIG. 4A decides to zoominto a phrase of a few lines, he will instruct the system to switch tolocal zoom mode (see FIG. 4B and move his finger 445 until desired textis selected for local zooming (see FIG. 4C). In accordance with thisembodiment system switching to local zoom in mode is done in wayssimilar to the ones described earlier for the map application.Specifically, user can press on special “Local Zoom” button similar tobutton 304 in FIG. 3B, but not shown in FIG. 4A, FIG. 4B, or FIG. 4C.Once system is in the local zoom mode, the user will point an area inthe text that needs to be locally zoomed in. In accordance with anotherembodiment the user will select area in the text by placing his finger,and then while his finger is in the text, he will press “local zoom”button, thus instructing the system to locally enlarge text around thepoint in the text selected by the user. Alternatively command forswitching the system in local zoom mode, or local zoom in and local zoomout instructions can be given by voice commands E.g., user can say“SWITCH TO LOCAL ZOOM MODE” and then specify area that needs to belocally zoomed in. Or the user can place his finger on the text and say“ZOOM_IN” if he wants to zoom in text around the selected point, etc.

Now assuming that the user wants to lookup one of the words or phrasesin the selected text in the dictionary, or do web search for that wordor phrase, or wants simply go to web sites associated with the word bythe application. By double tapping into selected word, user tells theapplication take this word and place it into the window of the auxiliaryapplication. FIG. 5 illustrates Selected Word Search Option, inaccordance with an embodiment of the present disclosure. For example,FIG. 5A, illustrates user selecting word “capacitance” 515. Once theword is placed in the window of auxiliary application the user can typeadditional words 516, as shown in FIG. 5B.

Alternatively, double tapping on a word would select a phrase betweencommas in the selected text. FIG. 6 illustrates Selected Phrase SearchOption in accordance with an embodiment of the present disclosure. Forexample, FIG. 6A illustrates this by showing that double tapping on word“capacitance” results in selecting the whole corresponding phrase“projected capacitance” 615 between commas of the selected text. As wasmentioned above, auxiliary application could be used such as a searchengine like Google (see 616 in FIG. 6B), or dictionary, or web pageslinked to the word or phrase by the application.

Main operations of the embodiment related to map application of thisinvention are illustrated in flow charts shown in FIG. 7, FIG. 8, andFIG. 9.

FIG. 7 is an example of a flow diagram illustrating a process 700 ofenabling Local Zoom (Small Map) around the touched point of a base mapin accordance with an embodiment of the present disclosure. FIG. 7 isthe example of the procedure of Enabling Local Zoom (Small Map) aroundthe touched point of the Base Map. Here Base Map refers to the mapinside which a smaller map is being drawn, for example, the Main Mapwith level 0. Accordingly, a Small Map may be a map with level 1. At 702the base map is touched by a user. At 704, the X and Y coordinates ofthe touch point are identified and the information around the touchpoint is zoomed in. At decision block 706, if it is determined that thefinger is being moved on the surface, process 700 moves to block 708where the zoomed in area is moved along with the finger typically withperiodicity T=1 ms for updating finger touch location and redrawingzoomed in local area. At 710, if the finger has been lifted, the process700 ends. If not process 700 moves back to block 706. At 706, if thefinger is not moving on the surface, process 700 moves to block 710.

FIG. 8 is an example of a flow diagram illustrating a process 800 ofenabling local zoom (small) maps inside a base map in accordance with anembodiment of the present disclosure. Here Base Map refers to the mapinside which a smaller map is being drawn. E.g., it could be the MainMap with level 0. Then a Small Map is a map with level 1. At 802,counter C is set to zero. At 804, if the local zoom button is touched Cis incremented by 1 at 806. If not, it is checked if C is greater thanzero at 808. If yes, a color is assigned to the local zoom button. It isagain checked if C is greater than zero at 812. If yes “Local Zoom C=k”is written in the Local Zoom button where k=C−1. If C is not greaterthan zero at 812 it is checked if base map is touched at 816. If yes,the local zoom is enabled around the touched point of the base map. Ifnot, process 800 keeps checking if base map was touched at 816. At 820 Cis decremented by 1. At 824, if C is greater than one, “Local Zoom C=k”is written in the Local Zoom button where k=C−1. If C is not greaterthan 1 at 824, process 800 checks if C is equal to one at 826. If yes,“Local Zoom” is written in the Local Zoom button. If not, process 700ends.

FIG. 9 is an example of a flow diagram illustrating a process 900 ofretrieving information from two separate locations in accordance with anembodiment of the present disclosure. In this particular example, theretrieved information includes the locations of all Italian restaurantsin two selected areas. At 902, a user preselects two possible locationswhere he wants to eat Italian food. At 904, the user instructs thesystem to open two small windows (SWs) inside the main map window asdescribed in FIG. 8. At 906, if the user is touching both SWs, process900 checks if the user has given a voice command instruction at 908. Ifyes, the voice command is run through voice recognition engine, e.g.,user is asking for Italian restaurants. At 912, a request is sent to thedatabase to provide the requested information. For example, location(coordinates on the map) of Italian restaurants within the boundaries ofSW maps. At 914, the retrieved requested information is displayed on themap. For example each location of an Italian restaurant is marked withineach of the two SWs and highlighted.

FIG. 10 is an example of a flow diagram illustrating a process 1000 ofgenerating nested zoom in windows in accordance with an embodiment ofthe present disclosure.

Process 1000 begins at 1002 by zooming into a first portion of the usercontent by touching the display screen in a proximity of the firstportion using the touch input device while retaining an original zoomsize of a remaining portion of the user content. At 1004, a secondportion of a zoomed in first portion of the user content is zoomed intoby touching the display screen in a proximity of the second portionusing the touch input device while retaining an original zoom size ofthe zoomed in first portion.

Those of skill in the art would understand that information and signalsmay be represented using any of a variety of different technologies andtechniques. For example, data, instructions, commands, information,signals, bits, symbols, and chips that may be referenced throughout theabove description may be represented by voltages, currents,electromagnetic waves, magnetic fields or particles, optical fields orparticles, or any combination thereof.

Those of skill would further appreciate that the various illustrativelogical blocks, modules, circuits, and algorithm steps described inconnection with the disclosure herein may be implemented as electronichardware, computer software, or combinations of both. To clearlyillustrate this interchangeability of hardware and software, variousillustrative components, blocks, modules, circuits, and steps have beendescribed above generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure.

The various illustrative logical blocks, modules, and circuits describedin connection with the disclosure herein may be implemented or performedwith a general-purpose processor, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA) or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. Ageneral-purpose processor may be a microprocessor, but in thealternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

The steps of a method or algorithm described in connection with thedisclosure herein may be embodied directly in hardware, in a softwaremodule executed by a processor, or in a combination of the two. Asoftware module may reside in RAM memory, flash memory, ROM memory,EPROM memory, EEPROM memory, registers, hard disk, a removable disk, aCD-ROM, or any other form of storage medium known in the art. Anexemplary storage medium is coupled to the processor such that theprocessor can read information from, and write information to, thestorage medium. In the alternative, the storage medium may be integralto the processor. The processor and the storage medium may reside in anASIC. The ASIC may reside in a user terminal. In the alternative, theprocessor and the storage medium may reside as discrete components in auser terminal.

In one or more exemplary designs, the functions described may beimplemented in hardware, software, firmware, or any combination thereof.If implemented in software, the functions may be stored on ortransmitted over as one or more instructions or code on acomputer-readable medium. Computer-readable media includes both computerstorage media and communication media including any medium thatfacilitates transfer of a computer program from one place to another. Astorage media may be any available media that can be accessed by ageneral purpose or special purpose computer. By way of example, and notlimitation, such computer-readable media can comprise RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium that can be used to carryor store desired program code means in the form of instructions or datastructures and that can be accessed by a general-purpose orspecial-purpose computer, or a general-purpose or special-purposeprocessor. Also, any connection is properly termed a computer-readablemedium. For example, if the software is transmitted from a website,server, or other remote source using a coaxial cable, fiber optic cable,twisted pair, digital subscriber line (DSL), or wireless technologiessuch as infrared, radio, and microwave, then the coaxial cable, fiberoptic cable, twisted pair, DSL, or wireless technologies such asinfrared, radio, and microwave are included in the definition of medium.Disk and disc, as used herein, includes compact disc (CD), laser disc,optical disc, digital versatile disc (DVD), floppy disk and blu-ray discwhere disks usually reproduce data magnetically, while discs reproducedata optically with lasers. Combinations of the above should also beincluded within the scope of computer-readable media.

The previous description of the disclosure is provided to enable anyperson skilled in the art to make or use the disclosure. Variousmodifications to the disclosure will be readily apparent to thoseskilled in the art, and the generic principles defined herein may beapplied to other variations without departing from the spirit or scopeof the disclosure. Thus, the disclosure is not intended to be limited tothe examples and designs described herein, but is to be accorded thewidest scope consistent with the principles and novel features disclosedherein.

What is claimed is:
 1. A method for viewing user content on a touchsensitive display screen of a touch sensitive device by using a touchinput device, the method comprising: zooming into a first portion of theuser content by touching the display screen in a proximity of the firstportion using the touch input device while retaining an original zoomsize of a remaining portion of the user content; zooming into a secondportion of the original zoom size by touching the display screen outsideof the zoomed in first portion of the user content using the touch inputdevice while retaining the zoomed in first portion of the user contentand retaining the original zoom size of the remaining portion of theuser content; selecting a first object in the zoomed in first portionwith a first part of the touch input device; selecting a second objectin the zoomed in second portion with a second part of the touch inputdevice; receiving information related to the selected first object andthe selected second object; and setting, using the touch input device,the remaining portion of the user content as the active window, thezoomed in first portion of the user content as the active window, or thezoomed in second portion of the user content as the active window. 2.The method of claim 1, wherein zooming into the first portion comprisesdisplaying the first portion in a first window with a zoom size largerthan the original zoom size of the remaining portion.
 3. The method ofclaim 2, wherein zooming into the second portion comprises displayingthe second portion in a second window with a zoom size larger than theoriginal zoom size of the zoomed in first portion.
 4. The method ofclaim 3 wherein the first window is displayed superimposed over thefirst portion of the user content.
 5. The method of claim 4, wherein thesecond window is displayed superimposed over the first window.
 6. Themethod of claim 5, wherein the size of the first window is smaller thanthe size of the user content.
 7. The method of claim 6, wherein the sizeof the second window is smaller than the size of the first window. 8.The method of claim 7, wherein each of the first and the second windowscomprise an indicator showing a zoom level.
 9. An apparatus for viewinguser content on a touch sensitive display screen of a touch sensitivedevice by using a touch input device, the apparatus comprising: at leastone processor configured to: zoom into a first portion of the usercontent by touching the display screen in a proximity of the firstportion using the touch input device while retaining an original zoomsize of a remaining portion of the user content, zoom into a secondportion of the original zoom size by touching the display screen outsideof the zoomed in first portion of the user content using the touch inputdevice while retaining the zoomed in first portion of the user contentand retaining the original zoom size of the remaining portion of theuser content, select a first object in the zoomed in first portion witha first part of the touch input device, select a second object in thezoomed in second portion with a second part of the touch input device,receive information related to the selected first object and theselected second object, set, using the touch input device, the remainingportion of the user content to the active window, the zoomed in firstportion of the user content to the active window, or the zoomed insecond portion of the user content as the active window; and a memorycoupled to the at least one processor.
 10. The apparatus of claim 9,wherein the processor is configured to zoom into the first portion bydisplaying the first portion in a first window with a zoom size largerthan the original zoom size of the remaining portion.
 11. The apparatusof claim 10, wherein the processor is configured to zoom into the secondportion by displaying the second portion in a second window with a zoomsize larger than the original zoom size of the zoomed in first portion.12. The apparatus of claim 11 wherein the first window is displayedsuperimposed over the first portion of the user content.
 13. Theapparatus of claim 12, wherein the second window is displayedsuperimposed over the first window.
 14. The apparatus of claim 13,wherein the size of the first window is smaller than the size of theuser content.
 15. The apparatus of claim 14, wherein the size of thesecond window is smaller than the size of the first window.
 16. Theapparatus of claim 15, wherein each of the first and the second windowscomprise an indicator showing a zoom level.
 17. A computer programproduct for viewing user content on a touch sensitive display screen ofa touch sensitive device by using a touch input device, the computerprogram product comprising: a non-transitory computer-readable mediumcomprising code configured to: zoom into a first portion of the usercontent by touching the display screen in a proximity of the firstportion using the touch input device while retaining an original zoomsize of a remaining portion of the user content, zoom into a secondportion of the original zoom size by touching the display screen outsideof the zoomed in first portion of the user content using the touch inputdevice while retaining the zoomed in first portion of the user contentand retaining the original zoom size of the remaining portion of theuser content, select a first object in the zoomed in first portion witha first part of the touch input device, select a second object in thezoomed in second portion with a second part of the touch input device,receive information related to the selected first object and theselected second object, and set, using the touch input device, theremaining portion of the user content as the active window, the zoomedin first portion of the user content as the active window, or the zoomedin second portion of the user content as the active window.
 18. Thecomputer-program product of claim 17, wherein zooming into the firstportion comprises displaying the first portion in a first window with azoom size larger than the original zoom size of the remaining portion.19. The computer-program product of claim 18, wherein zooming into thesecond portion comprises displaying the second portion in a secondwindow with a zoom size larger than the original zoom size of the zoomedin first portion.
 20. The computer-program product of claim 19 whereinthe first window is displayed superimposed over the first portion of theuser content.
 21. The computer-program product of claim 20, wherein thesecond window is displayed superimposed over the first window.
 22. Thecomputer-program product of claim 21, wherein the size of the firstwindow is smaller than the size of the user content.
 23. Thecomputer-program product of claim 22, wherein the size of the secondwindow is smaller than the size of the first window.
 24. Thecomputer-program product of claim 23, wherein each of the first and thesecond windows comprise an indicator showing a zoom level.
 25. A processfor viewing user content on a touch sensitive display screen of a touchsensitive device by using a touch input device, comprising: zooming intoan area on a main map using an input device on the touch sensitivedisplay screen to generate a first zoomed smaller map within the mainmap; and zooming into another area using the input device on the touchsensitive display screen to generate a second zoomed smaller map whileretaining the first zoomed smaller map and the main map, wherein thesecond zoomed smaller map is generated within the first zoomed smallermap, or outside of the first zoomed smaller map and within the main map.